آشنایی با ویروس ها (22) RootKit






rootkit ها برنامه هایی هستند که از نظر ساختار کاری بسیار شبیه nt color="red">Trojannt > ها و backdoor ها هستند ولی با این تفاوت که شناسایی rootkit بسیار مشکلتر از درب های پشتی است زیرا rootkit ها علاوه بر اینکه به عنوان یک برنامه کاربردی خارجی مثل شنونده netcat و ابزارهای درب پشتی مثل sub7 بر روی سیستم اجرا می شوند بلکه جایگزین برنامه های اجرایی مهم سیستم عامل و در گاهی مواقع جایگزین خود هسته کرنل می شوند و به هکرها این اجازه را می دهند که از طریق درب پشتی و پنهان شدن در عمق سیستم عامل به آن نفوذ کنند و مدت زیادی با خیال راحت با نصب ردیاب ها ( sniffer ) و دیگر برنامه های مانیتورینگ بر روی سیستم اطلاعاتی را که نیاز دارند بدست آورند. در دنیای هکرها دو نوع rootkit اصلی وجود دارد که هر کدام تعریف جداگانه ای دارند .

rootkit سنتی:

rootkit های سنتی با شناسایی اولین rootkit بسیار قدرتمند در اویل سال 1990 در طول یک دهه گسترش پیدا کردند و تا آنجا پیش رفتند که امروزه انواع مختلفی از rootkit های سنتی وجود دارند که به طور عملی خودشان نصب شده و به هکرها اجازه می دهند که به سرعت سیستم قربانی را فتح کنند . rootkit های سنتی برای سیستم عامل های مختلف نوشته شده اند ولی به طور سنتی بر روی سیستم های یونیکس مثل hp-ux - aix - linux - solaris - sunos و از این قبیل تمرکز کرده اند . ولی برای ویندوزهای سرور مثل nt/2000 نیز rootkit هایی نوشته شده اند که جایگزین کتابخانه های پیوند پویا ( dll ) شده و یا سیستم را تغییر می دهند ولی تعداد زیادی از rootkit ها برای سیستم های یونیکس نوشته شده اند .
rootkit ها اجازه دسترسی root یا administrator را به ما نمی دهند و ما هنگامی قادر به نصب آنها بر روی یک سیستم هستیم که دسترسی ریشه ای و مدیر یک سیستم را توسط روش های دیگری مثل سرریز بافر . . . به دست آورده باشیم . بنابراین یک rootkit یک سری ابزارهایی است که با پیاده سازی یک درب پشتی ( backdoor ) و پنهان کردن مدارک استفاده از سیستم و ردپاها به هکر اجازه نگهداری دسترسی سطح ریشه را می دهد .
ساختار کار تروجن ها به این صورت است که فایلی را در داخل هسته سیستم مثل پوشه system32 اضافه می کند و این فایل تمامی پسوردهای قربانی را log کرده و برای هکر می فرستد و یا با باز کردن پورتی اجازه ورود هکر را از طریق پورت باز شده می دهد ولی rootkit های سنتی به جای اینکه فایلی در هسته سیستم قربانی اضافه کنند، سرویسها و فایل های اصلی و مهم سیستم عامل قربانی را با یک نسخه تغییر یافته آن که عملیاتی مخرب انجام می دهد جایگزین می کنند . برای مثال rootkit های معروف در سیستم های یونیکس برنامه / bin/login را که یکی از اساسی ترین ابزارهای امنیتی در unix است را با یک نسخه تغییر یافته که شامل یک کلمه عبور درب پشتی برای دسترسی سطح ریشه می باشد عوض می کنند . سیستم های یونیکس از برنامه / bin/login برای جمع آوری و تست userid های کلمات عبور استفاده می کند .
/ bin/login شناسه کاربری و پسورد تایپ شده توسط کاربر را با فایل پسوردها مقایسه می کند تا تعیین کند که پسورد داده شده توسط کاربر صحیح است یا خیر . اگر پسورد داده شده درست باشد روتین / bin/login به آن user اجازه ورود به سیستم را می دهد . خب با این توضیحی که دادیم فرض کنید که یک rootkit این برنامه را با برنامه نوشته شده خود عوض کند . اگر هکر از پسورد ریشه درب پشتی استفاده کند، برنامه / bin/login تغییر یافته و اجازه دسترسی به سیستم را می دهد . حتی اگر مدیر سیستم پسورد ریشه اصلی را عوض کند، هکر هنوز می تواند با استفاده از کلمه عبور ریشه درب پشتی به سیستم وارد شود.
بنابراین یک روتین rootkit ، /bin/login یک درب پشتی است زیرا می تواند برای دور زدن کنترل های امنیتی نرمال سیستم مورد استفاده قرار گیرد . علاوه بر آن یک اسب تروا هم هست زیرا فقط چهره آن یک برنامه نرمال و زیبای login است ولی در اصل یک backdoor است . اکثر rootkit ها سرویس ها و برنامه هایی مثل du - find - ifconfig - login - ls - netstat - ps را با rootkit خود جابه جا می کنند . هر یک از این برنامه های سیستمی با یک اسب تروای منحصر به فرد جایگزین می شود که عملکرد آنها شبیه به برنامه عادی است .
همه این برنامه های unix مانند چشم و گوش های مدیران سیستم می باشد که تعیین می کنند چه فایل ها و سرویس هایی در حال اجرا هستند . هکرها با پوشاندن چشم و گوشهای مدیران سیستم که توسط rootkit انجام می شود می توانند به صورت موثری حضورشان را در یک سیستم مخفی نگه دارند.
ادامه دارد .....
ارسال مقاله توسط عضو محترم سایت با نام کاربری : sm1372